package estructuraGrafo;

import java.io.Serializable;

/**
 * Clase Enlace: Esta clase representa los enlaces que existen entre los difentes nodos
 * 
 * @author  Grupo N11
 * @author  Prinsich Bernz, Emilio J. A.
 * @author 	Solia, Guillermo D.
 * @version  1.0
 */

public class Enlace implements Serializable{

	private static final long serialVersionUID = 1L;
	/**Nombre de nodo destino*/
	private String destino;
	private double distancia;
	private String nombre;
	private float costo;
	private int caudal;
	private boolean estado;//Estado del enlace (Habilitado o no)

	/**
	 * Crea un Enlace seteando todos las variables
	 * @param destino
	 * @param nombre
	 * @param distancia
	 * @param costo
	 * @param caudal
	 * @param estado
	 */
	public Enlace(String destino, String nombre, double distancia, float costo, int caudal, boolean estado){
		this.setDestino(destino);
		this.setNombre(nombre);
		this.modificar(distancia);
		this.setCosto(costo);
		this.setCaudal(caudal);
		this.setEstado(estado);
	}

	/**
	 * Crea un Enlace sin setear las variables
	 * @param desti
	 */
	public Enlace(String desti){
		destino = desti;
		nombre = "";
		distancia = -1;
		costo = -1;
		caudal = -1;
		estado = true;
	}

	public void modificar(double distancia)	{
		this.distancia = distancia;
	}

	private void setDestino(String desti) {
		this.destino=desti;
	}
	
	public String getDestino(){
		return destino;
	}

	public double getDistancia(){
		return distancia;
	}

	public void setCosto(float costo) {
		this.costo = costo;
	}

	public float getCosto() {
		return costo;
	}

	public void setCaudal(int caudal) {
		this.caudal = caudal;
	}

	public int getCaudal() {
		return caudal;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getNombre() {
		return nombre;
	}

	public void setEstado(boolean estado) {
		this.estado = estado;
	}

	public boolean getEstado() { return estado;}
	
	public boolean isEstado() {
		return estado;
	}

	public void setDistancia(float distancia) {
		this.distancia = distancia;
		
	}
}